def input_num(hint: str):
    # 定义一个布尔变量，用于标记x_str是否是纯数字，初始值为False
    x_is_num = False
    # 处理x的输入，使用while循环，只要x_is_num为False就会持续循环
    while not x_is_num:
        # 提示用户输入第一个数字，并将输入的内容存储到x_str变量中
        x_str = input(hint)
        # 遍历x_str中的每一个字符
        for c in x_str:
            # 检查当前字符是否不在数字字符集合中
            if c not in "0123456789":
                # 如果有一个字符不是数字，将x_is_num标记为False
                x_is_num = False
                # 跳出当前的for循环
                break
        # 当for循环正常结束（即没有通过break语句跳出）时，会执行else语句块
        else:
            # 如果循环正常结束，说明x_str中的所有字符都是数字，将x_is_num标记为True
            x_is_num = True
        # 如果x_is_num为True，说明输入的是纯数字，跳出while循环
        if x_is_num:
            return x_str
        # 如果输入不是纯数字，提示用户输入的内容有误，需要重新输入
        print("输入的内容有误，请重新输入")

def input_mark():
    while True:
        # 提示用户输入运算符，并将输入的内容存储到mark变量中
        mark = input("请输入运算符：")
        # 检查输入的运算符长度是否为1，并且是否是合法的运算符（+、-、*、/）
        if len(mark) == 1 and mark in "+-*/":
            return mark
        # 如果运算符输入不正确，提示用户运算符不对，需要重新输入
        print("运算符不对，请重新输入")

# # 定义一个布尔变量，用于标记y_str是否是纯数字，初始值为False
# y_is_num = False
# # 处理y的输入，使用while循环，只要y_is_num为False就会持续循环
# while not y_is_num:
#     # 提示用户输入第二个数字，并将输入的内容存储到y_str变量中
#     y_str = input("请输入第二个数字：")
#     # 遍历y_str中的每一个字符
#     for c in y_str:
#         # 检查当前字符是否不在数字字符集合中
#         if c not in "0123456789":
#             # 如果有一个字符不是数字，将y_is_num标记为False
#             y_is_num = False
#             # 跳出当前的for循环
#             break
#     # 当for循环正常结束（即没有通过break语句跳出）时，会执行else语句块
#     else:
#         # 如果循环正常结束，说明y_str中的所有字符都是数字，将y_is_num标记为True
#         y_is_num = True
#     # 如果y_is_num为True，说明输入的是纯数字，跳出while循环
#     if y_is_num:
#         break
#     # 如果输入不是纯数字，提示用户输入的内容有误，需要重新输入
#     print("输入的内容有误，请重新输入")

def cal():
    # 初始化变量，用于存储用户输入的第一个数字的字符串形式
    x_str = input_num("请输入第一个数字：")
    print("x_str: ", x_str)  # 打印x_str的值，用于调试
    # 初始化变量，用于存储用户输入的第二个数字的字符串形式
    y_str = input_num("请输入第二个数字：")
    print("y_str: ", y_str)  # 打印y_str的值，用于调试
    # 初始化变量，用于存储用户输入的运算符
    mark = input_mark()
    # 将存储数字的字符串转换为浮点数类型
    x = float(x_str)
    y = float(y_str)

    # 根据用户输入的运算符进行相应的数学运算
    if mark == "+":
        r = x + y
    elif mark == '-':
        r = x - y
    elif mark == '*':
        r = x * y
    elif mark == '/':
        r = x / y

    # 打印计算结果，使用f-string格式化输出
    print(f"{x} {mark} {y} = {r}")

# cal()

if __name__ == '__main__':
    cal()